Top 10k strings from Supercode (1984)(CP Software)[a].tzx in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [TZX] (TOSEC-v2007-01-01) /

Back to the directory listing

   7 ;"Routine in ROM";
   2 A,B,C$,DUR:
   2 "  If you choose 
   1 tool      
   1 existing line no:,the  next valid line no: is used.Cal -culated GOTOs etc are highlit.":
   1 at any  position on the screen: ie, to  find the CODE of the character  printed 
   1 \##N#F#"]\"
   1 [}\r#s#N#F#
   1 ZX SPECTRUM MACHINE CODE TOOLKIT
   1 X/Q/S/R/I/C/N/D
   1 This is Line #";Z
   1 The Recording was fine!
   1 TO SEE HOW THIS WAS DONE, EXIT &   EXAMINE LINES 9400 TO 9430   
   1 Start address:
   1 SUPERSOFT  SYSTEMS
   1 SUPERCODE2
   1 SUPERCODE \v(#kiO
   1 SAVE '";C$(
   1 S U P E R C O D E
   1 Routine Starts at ";A
   1 Routine Length is ";B;" bytes
   1 Routine Ends at   ";A+B-1
   1 ROUTINE NO:/ ENTER TO SCROLL 
   1 ROUTINE NO: ?  
   1 ROUTINE  ";C$'" IS NOW CALLED
   1 RANDOMIZE USR 3190
   1 RANDOMIZE USR ";A
   1 R"E\*S\###"
   1 Press a key to turn the page
   1 Press S to SAVE, Q to QUIT
   1 Press Q  to QUIT
   1 Press ENTER to Expand the Whole Program 
   1 PRINT;: RANDOMISE USR 60222
   1 PRESS THE APPROPRIATE KEY
   1 PRESS ANY KEY TO CONTINUE
   1 POKE NUMBERS 
   1 No. STATEMENTS :
   1 No. OF EXTRA BYTES::}\_:~\W:
   1 No. LINES      :
   1 No. Bytes:
   1 Length of Program Only:!
   1 LINE NO:NOW RENUMBER PROGRAM
   1 LIKE AN EXAMPLE - Y/N ?
   1 L);"'CODE";A;",";B
   1 Input Routine Number, or 'I'  if you want the index again.    Enter 'D' for a demonstration.
   1 INTRODUCTION
   1 I N D E X   (CONT)
   1 HIRES SCROLL-UPD
   1 Freddy A Vachha  &  Vic B Rumsey
   1 First Byte:
   1 FROM LINE NO:TO LINE NO:AFTER LINE NO:NOW RENUMBER PROGRAM
   1 ERROR CODE: ";
   1 ENLARGE REM
   1 BLOCK COPY
   1 Auto-start Line No:
   1 Array Name:
   1 ;C$;" CODE ";A;",";B:
   1 ;"top left hand corner of the box"
   1 ;"You can scroll attributes too   by using this routine & then    No: 37 - 40, after defining an  appropriate box & setting the   Attr Value to 63."
   1 ;"WRAP-AROUND POKE ";A+16
   1 ;"WRAP-AROUND POKE ";
   1 ;"WRAP AROUND  POKE ";A+13
   1 ;"To save this routine, use";
   1 ;"To renumber lines starting with S using an interval I, first    POKE 59580,I: POKE 59582,S-256* INT(S/256):POKE59583,INT(S/256) All GOTOs,GOSUBs,LISTs,LLISTs,  RESTOREs,SAVE...LINEs & #Ns are renumbered(except for decimal/  calculated arguments & REMs).If the arg
   1 ;"To help with PRINTing/PLOTting, this routine prints a BRIGHT ON /OFF checkerboard on the screen"
   1 ;"To delete all lines from a to b POKE 23728, a - 256*INT(a/256)  POKE 23729, INT(a/256)          RANDOMISE b":
   1 ;"To call this routine, use";
   1 ;"This routine will switch all    flashing squares to steady &    vice versa. This is hence very  different from routines 32/33."
   1 ;"This routine will switch all    bright squares to normal &      vice versa. This is hence very  different from routines 34/35."
   1 ;"This routine waits till a key   (whose CODE will be put in L)is pressed.":
   1 ;"This routine undoes the effect  of #98, to allow lines of a     CONFUSEd program to be EDITed/  altered.":
   1 ;"This routine swops all chara-   cters of a given CODE with all  characters of a 2nd given CODE. POKE 63903, Old CODE            POKE 63905, New CODE"
   1 ;"This routine simulates a power- off: ie, it not only does NEW   but also CLEARs RAMTOP to its   original value, clears the      entire memory & resets UDGs &   System VARs.":
   1 ;"This routine shortens & speeds  up your program by deleting     all REM statements in it. Also  see #41,#82,#90 & #100.":
   1 ;"This routine replays what #77   recorded. It is probably best   to use your cassette-recorder   (MIC socket) to amplify the     sound.":
   1 ;"This routine replaces numbers   in the program by VAL String,   which saves space but reduces   speed. 0 is replaced by NOT PI. Also see #41,#64,#82,#90":
   1 ;"This routine prints the address of the first character in the   line the cursor points to.":
   1 ;"This routine prints out both    the no: of lines & statements   in the program. If you try this out, use GOTO 9001 to restart."
   1 ;"This routine prints out a full  analysis of memory contents,    starting at the address whose   less & more significant bytes   (see #61) have been POKEd into  62866 & 62867 respectively.":
   1 ;"This routine places a random #  pair in the System Variable     SEED ( PEEK 23670 & 23671 )." ;
   1 ;"This routine permits instant    conversion of a number from 0 - 65535 to its 2-byte equivalent. To convert X into its 2-byte    equivalent, enter RANDOMISE X.  
   1 ;"This routine lists all          (1) Numeric variables           (2) String variables            (3) Numeric Arrays              (4) String Arrays               (5) FOR..NEXT control variables"  
   1 ;"This routine inserts a given    number into a block of memory.  POKE 63796, No: of bytes        POKE 63798 (less sig) & 63799     (more sig), Start Address     POKE 63801, No: to be inserted"
   1 ;"This routine expands programs   so that there is exactly one    statement per line (except in   IF..THEN lines)":
   1 ;"This routine enables you to     determine the 
   1 ;"This routine deletes hidden     colour items, thus saving space Also see #64,#82 & #100":
   1 ;"This routine decodes tapeheader information & prints out a full analysis (name, address, type,  length & auto-start details.":
   1 ;"This routine converts hex no:s  to their decimal equivalents.   It clears the screen & prompts  'H:' - now ENTER the hex no:.   Only the last 4 hex digits will be converted. The routine auto- repeats. Enter 'Q' to quit to   BASIC.":
   1 ;"This routine converts decimal   no:s from 0 to 65535 to hex.    It clears the screen & prompts  'D:' - now ENTER the dec no:.   Error message 6 results if the  no: was out of range. The rou-  tine autorepeats. Enter 'Q' to  quit to BASIC.":
   1 ;"This routine contracts programs into the minimum no: of lines,  by combining lines wherever it  is logically possible. Speed is also increased. See also #41,   #64, #90 & #100":
   1 ;"This routine allows hex input   into RAM.POKE the less/more sig (see #61) bytes of the first    address to be changed into the  system-var DEFADD (23563/4).    POKE 65360/61 with the start    address of routine #63(Hex-Dec) which must also be in memory.":
   1 ;"This routine allows a block of  lines to be relocated within a  BASIC program.In order to shift lines 4200 till 6745 so they    appear after2200 in the listing respond 4200,6745 & 2200 to the auto-prompts.The new lines will all have number 0.Now call #60  to renumber & #57 to delete the old lines. Fully errorproofed.":
   1 ;"The routine prints the byte     space available";
   1 ;"The Toolkit contains 
   1 ;"THIS IS AN EXAMPLE OF THE NEW   CHARACTER SET.POKE 23606/7 WITH THE LESS/MORE SIGNIFICANT BYTES OF THE START ADDRESS LESS 256 - CURRENTLY 0 & 223. TO RETURN TO THE NORMAL SET,POKE 23607,60.":
   1 ;"SCROLL-OFF  POKE ";A+16
   1 ;"SCROLL-OFF  POKE ";
   1 ;"SCROLL-OFF   POKE ";A+13
   1 ;"Routines 94 to 97 change the    case (upper/lower)of strings or of the entire listing ( except  strings),as specified.Note that an effective way of switching   case from within programs is to POKE 23658,0 (LO) or 8(HI).":
   1 ;"Routine in ROM":
   1 ;"PRINT AT co-ordinates of the";
   1 ;"POKE 64884, Overall Paper Col"
   1 ;"POKE 64859, Overall Ink Colour"
   1 ;"POKE 64829, Character Code      POKE 64831, Box height          POKE 64834, Box Width           POKE 64832 & POKE 64835 with    the PRINT AT co-ordinates for   the top-left hand corner of     the box."
   1 ;"POKE 64682, Duration            POKE 64693, Frequency 1         POKE 64702, Frequency 2"
   1 ;"POKE 64648, Frequency           POKE 64649, Span                POKE 64651, Duration            POKE 64670, 28(UP) or 29(DOWN)"
   1 ;"POKE 63011, Pitch Decrement     POKE 63012, Number of notes     POKE 63014 & 63015, Pitch            (less/more sig)            POKE 63017 & 63018, Duration         in ms (less/more sig)"
   1 ;"POKE 63001 & 63002 with the     Pitch value (less/more sig)     POKE 63004 & 63005 with the     Duration in ms (less/more sig)"
   1 ;"POKE 60006, Duration (1-127)    POKE 60020, Colours  (0-7)      POKE 60029, Line Space (1-255)"
   1 ;"POKE ";A+7
   1 ;"POKE ";A+6
   1 ;"POKE ";A+4
   1 ;"POKE ";A+2
   1 ;"POKE ";A+1
   1 ;"No GOSUBs or GOTOs are changed. If L is the first Line to be    renumbered, & I the Interval    POKE 64711, I - 256*INT(I/256)  POKE 64712, INT(I/256)          POKE 64714, L - 256*INT(L/256)  POKE 64715, INT(L/256)":
   1 ;"Move the cursor to the required line & then call this routine.  You will be in EDIT mode, but   with the cursor at the END of   the line.":
   1 ;"Make the following POKEs:-      INK    (63732)  PAPER (63738)   FLASH  (63744)  BRIGHT(63750)   INVERSE(63756)  OVER  (63762)   AT (63768,63771)CHR$  (63774)"
   1 ;"Less Sig  More Sig":
   1 ;"In order to scroll a table of   data > 22 lines long, without   stopping, include the command   POKE 23692,255 within the loop  that is generating the lines.":
   1 ;"In order to print lists or text using all the 24 lines on the   screen, include POKE 23659,0    before each PRINT instruction.  At the end, POKE 23659,2. Use   PAUSE 0 to prevent the Scroll   command corrupting the screen.  PRINT #0 & PRINT #1 commands    are also usable.":
   1 ;"In order to make the first line of your program virtually non-  deletable ( by making it #0 )   POKE 23755,0: POKE 23756,0":
   1 ;"INVERSE SCRL POKE ";A+13
   1 ;"Having connected the EAR socket of the cassette-recorder to the Specrum, start PLAYing the tape ( Voice is best. Let Vol=max )  Enter CLEAR 32767:RANDOMISE USR 65290. All memory from 32768 to 65K is used. To replay, call    routine 78.":
   1 ;"Follow the prompts to expand a  REM statement (to accommodate   code) anywhere in the program,  by up to 9999 bytes":
   1 ;"F.VACHHA   V.RUMSEY":
   1 ;"Each screen uses 6912 bytes, &  is stored above RAMTOP. It may  be necessary to CLEAR a new,    lower RAMTOP.To store a screen  from X-6911 to X, you must      POKE ";A+1
   1 ;"Draw multipointed-stars & rings by first plotting a point near  the middle of the screen & then using DRAW X,Y,N  where X & Y   have magnitudes from 10 to 60   & N lies between 8000 & 9999.   You may need to experiment."
   1 ;"Draw any closed figure on the   screen, then PLOT a point lying INSIDE it. POKE 59293 with the  required Attribute value, & now call this routine."
   1 ;"Corrupts the listing without    affecting program execution:    attempting to EDIT/alter lines  could be fatal ( v.useful for   program protection - also see   #61 & #80.":
   1 ;"Call this routine at the start  of your program, say by having  as LINE 1, '1  RANDOMISE USR    60899'. Now if an error of the  type D:BREAK,H:STOP in INPUT or L:BREAK into program occurs the program will not stop but will  jump to the line number whose 2 byte equivalent is POKEd into   60952(lo) & 60953(hi).This line is initially 9495.":
   1 ;"Call this routine at the start  of your program, say by having  as LINE 1, '1  RANDOMISE USR    60826'. Now if an error occurs, (other than types 0:OK,8:END or 9:STOP) the program will not    stop but will jump to the line  number whose 2-byte equivalent  is POKEd into 60878(lo) & 60879 (hi)...initially 9495. For the  error code, PEEK 23681.":
   1 ;"By combining this routine with  No:s 37-40, joint scrolling of  attributes can be done. Define  a suitable box, use an Attr Val of 63 & call the Attr Scroll    routine(s) once for every 8     calls of this routine."
   1 ;"By POKEing 23606 & 23607 with   different numbers, a corrupted  character set is obtained. To   normalise,                      POKE 23606,0: POKE 23607,60":
   1 ;"1)Introduce as line#1 a REM      statement:then POKE 23755,100   The program will work but not   list,until you POKE 23755,0    2)POKE 23636,150. To return to   normal, POKE 23636,92          3)Use the CONFUSE routine (#98) 4)Call #65/66 to disable BREAKs 5)Use CHR$ SCRAMBLE routine #59  to make the listing unreadable  -return to normal for PRINTing":
   1 ;"----> ";
   1 ;", X - 256*INT(X/256)";
   1 ;", New Attribute Val";
   1 ;", INT(X/256)":
   1 ;", Box width";
   1 ;", Box height"
   1 ;" & POKE ";A+3
   1 ;"  If you have noted important   details ( address, length,"
   1 ;"                          "
   1 7,13;: LET Z=
   1 7,13, you must enter PRINT 
   1 60039 Now Z is the required code.":
   1 57344----(8118)----65461
   1 23670 & 23671 now hold the less significant & more signi-  ficant byte values respectively":
   1 ,"VARIABLES SEARCH/LIST",1
   1 ,"UNI-NOTE SOUND-GEN",5
   1 ,"UNI-BEEP SIMULATOR",20
   1 ,"UNCONFUSE LISTING",1
   1 ,"U-CASE STRINGS",1
   1 ,"U-CASE PROGRAM",1
   1 ,"TAPE HEADER READER",1
   1 ,"SUPER-RENUMBER",1
   1 ,"STAR/TORUS DRAW",1
   1 ,"SHUTTER-SCROLL RIGHT",10
   1 ,"SHUTTER-SCROLL LEFT",10
   1 ,"SCREEN-PRINT",1
   1 ,"SCREEN STORE",1
   1 ,"SCREEN SEARCH",1
   1 ,"SCREEN OVERPRINT",1
   1 ,"SCREEN INVERT",1
   1 ,"SCREEN GRID",1
   1 ,"SCREEN FILL",1
   1 ,"SCREEN EXCHANGE",1
   1 ,"SCIFI CHARACTER SET",1
   1 ,"RIPPLE-SCROLL RIGHT",255
   1 ,"RIPPLE-SCROLL LEFT",255
   1 ,"REPLAY SOUND",0
   1 ,"REMKILL CONDENSER",1
   1 ,"RECORD SOUND",0
   1 ,"RANDOM NUMBER GENERATOR",20
   1 ,"PROTECT PROGRAM",1
   1 ,"PAPER CHANGE",1
   1 ,"PAINT-FILL",1
   1 ,"ON ERROR GOTO",1
   1 ,"ON BREAK GOTO",1
   1 ,"OBLIQUE SCROLL-OFF",1625
   1 ,"NON-DELETABLE LINES",1
   1 ,"MULTI-BEEP SIMULATOR",20
   1 ,"MONOCHROME PROGRAM",1
   1 ,"MEMORY AVAILABLE",1
   1 ,"LORES TOP 2/3 SCR-RGHT",255
   1 ,"LORES TOP 2/3 SCR-LEFT",255
   1 ,"LORES TOP 1/3 SCR-RGHT",255
   1 ,"LORES TOP 1/3 SCR-LEFT",255
   1 ,"LORES SCROLL-UP",24
   1 ,"LORES SCROLL-LEFT",33
   1 ,"LORES SCROLL RIGHT",33
   1 ,"LORES R-DIAG SCROLL",22
   1 ,"LORES MID 1/3 SCR-RGHT",255
   1 ,"LORES MID 1/3 SCR-LEFT",255
   1 ,"LORES LOW 2/3 SCR-RGHT",255
   1 ,"LORES LOW 2/3 SCR-LEFT",255
   1 ,"LORES LOW 1/3 SCR-RGHT",255
   1 ,"LORES LOW 1/3 SCR-LEFT",255
   1 ,"LORES L-DIAG SCROLL",22
   1 ,"LINE RENUMBER",1
   1 ,"LINE ADDRESS",1
   1 ,"L-CASE STRINGS",1
   1 ,"L-CASE PROGRAM",1
   1 ,"INK CHANGE",1
   1 ,"HIRES SW-DIAG SCROLL",190
   1 ,"HIRES SE-DIAG SCROLL",190
   1 ,"HIRES SCROLL-UP",175
   1 ,"HIRES SCROLL-RIGHT",255
   1 ,"HIRES SCROLL-LEFT",255
   1 ,"HIRES SCROLL-DOWN",200
   1 ,"HIRES NW-DIAG SCROLL",176
   1 ,"HIRES NE-DIAG SCROLL",176
   1 ,"HEX->DEC CONVERTER",1
   1 ,"HEX LOADER",1
   1 ,"FREE-SCROLLER",1
   1 ,"FLASH SWITCH",1
   1 ,"FLASH ON",1
   1 ,"FLASH OFF",1
   1 ,"EXPAND REM",1
   1 ,"EXPAND PROGRAM",1
   1 ,"DUAL-NOTE SOUND-GEN",10
   1 ,"DEC->HEX CONVERTER",1
   1 ,"CONTRACT PROGRAM",1
   1 ,"CONFUSE LISTING",1
   1 ,"COMPRESS NUMBERS",1
   1 ,"CLEAR ALL ",1
   1 ,"CHR$ SCRAMBLE",1
   1 ,"BRIGHT SWITCH",1
   1 ,"BRIGHT ON",1
   1 ,"BRIGHT OFF",1
   1 ,"BORDER EFFECTS",10
   1 ,"BLOCK MEMORY INSERT",1
   1 ,"BLOCK LINE DELETE",1
   1 ,"BLOCK LINE COPY",1
   1 ,"AWAIT KEYPRESS",1
   1 ,"ATTRIBUTE SCR-UP",40
   1 ,"ATTRIBUTE SCR-RIGHT",200
   1 ,"ATTRIBUTE SCR-LEFT",40
   1 ,"ATTRIBUTE SCR-DOWN",40
   1 ,"ATTRIBUTE FILL",1
   1 ,"APPEND STATEMENT",1
   1 ,"ANALYSE PROGRAM",1
   1 ,"ANALYSE MEMORY",1
   1 ,"ALL-RIGHT SCROLL",32
   1 ,"ALL-LEFT SCROLL",32
   1 ,"24-LINE PRINTING",1
   1 ,"2 BYTE CONVERTER",1
   1 , use a fresh  cassette - the routine is saved under the name ";
   1 , use GOTO 9001(not RUN)to restart the program."
   1 +A;", 26";
   1 +-*]\"[\*Q\
   1 ++F+N+++"]\*S\~
   1 ++F+N+++"]\
   1 *]\###q#p##"]\
   1 *S\##"]\^#V
   1 *SUPERCODE
   1 '" (1)At 10% Speed, using PAUSE"'" (2)At Full Speed"
   1 ' (repeat)"
   1 ' (number)":
   1 ' (index)"
   1 ' (exit)You will then have the option   of SAVEing the routine on tape."
   1 ' (continue)"
   1 #T]##N#F#~
   1 "programs.This BASIC program letsyou list,test,customise,relocateSAVE & VERIFY routines easily - but the routines will work just as well if the program is absent"
   1 "any POKEs that are necessary to tailormake the program for your specific needs) press '
   1 "This routine has now been saved.Replay it NOW to VERIFY. If the recording is bad, you will be   automatically returned to the   SAVE option via the Error-trap  routine."
   1 "The save MUST then be verified."
   1 "The code is from 57344 to 65461:it overwrites the first 12 UDGs.RAMTOP has been cleared to 57340"
   1 "The Index follows- input the no:of a routine for its description(incl all addresses & POKEs)& anoptional example.Get to know theMenu options (
   1 "SUPERCODE2"
   1 "#";N;": ";
   1 "  To access the next routine in the Index, press '
   1 "  To access a routine whose no: you know, press '
   1 "  The routines run hundreds of  times faster than BASIC,& can becustomised easily. Do enjoy yoursuperb Z80 MachineCode Library!"
   1 "  Keep a written record of the  name, address & length of this  routine, as well as of all the  relevant POKEs. For details on  relocation, refer to the manual."
   1 "  If you would like to have the details of this routine again,  press '
   1 "  If you wish to return to the  Index, press '
   1  machinecode routines which you can call(using RANDOMIZE/PRINT USR) bothdirectly & from within your own"
   1  ROUTINE # 65 HAS PREVENTED YOU  FROM BREAKING INTO THIS PROGRAM
   1  POKE 23607, 223   
   1  - Press any key to continue
   1